package br.ufrn.sipac.patrimonio.coletor.dominio;

import java.util.Date;

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;

@DatabaseTable(tableName = "levantamento")
public class Levantamento implements Persistencia {

	@DatabaseField(generatedId=true)
	private int id;

	/**
	 * Vari�vel que representa o n�mero do levantamento, gerado sequencialmente
	 * com base no ano.
	 */
	@DatabaseField
	private int numero;

	/**
	 * Vari�vel que representa o ano do levantamento.
	 */
	@DatabaseField
	private int ano;

	/**
	 * Vari�vel que representa o id do usu�rio que realizou aquele levantamento.
	 */
	@DatabaseField(columnName="id_usuario",foreign=true, canBeNull=true)
	private UsuarioColetor usuario;

	/**
	 * Vari�vel que representa a data de estorno de um levantamento.
	 */
	@DatabaseField(columnName="data_estorno")
	private Date dataEstorno;

	/**
	 * Vari�vel que representa o id da localidade de determinado levantamento.
	 */
	@DatabaseField(columnName="id_local",foreign=true)
	private Localidade local;

	/**
	 * Vari�vel que representa a data de cadastro de um levantamento.
	 */
	@DatabaseField(columnName="data_cadastro")
	private Date dataCadastro;

	/**
	 * Vari�vel que representa o status de um levantamento.
	 */
	@DatabaseField
	private int status;

	/**
	 * Vari�vel que representa o tipo da finalidade de um levantamento
	 * patrimonial.
	 */
	@DatabaseField(columnName="id_finalidade", foreign=true)
	private FinalidadeLevantamento finalidade;
	
	@DatabaseField
	private String descricao;

	public Date getDataCadastro() {
		return dataCadastro;
	}

	public void setDataCadastro(Date dataCadastro) {
		this.dataCadastro = dataCadastro;
	}

	public int getStatus() {
		return status;
	}

	public void setStatus(int status) {
		this.status = status;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public Localidade getLocal() {
		return local;
	}

	public void setLocal(Localidade local) {
		this.local = local;
	}

	public FinalidadeLevantamento getTipo() {
		return finalidade;
	}

	public void setTipo(FinalidadeLevantamento tipo) {
		this.finalidade = tipo;
	}

	public int getAno() {
		return ano;
	}

	public void setAno(int ano) {
		this.ano = ano;
	}

	public Date getDataEstorno() {
		return dataEstorno;
	}

	public void setDataEstorno(Date dataEstorno) {
		this.dataEstorno = dataEstorno;
	}

	public UsuarioColetor getUsuario() {
		return usuario;
	}

	public void setUsuario(UsuarioColetor idUsuario) {
		this.usuario = idUsuario;
	}

	public int getNumero() {
		return numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}

	public String toString() {
		return Integer.toString(this.id);
	}

	/**
	 * Vari�vel que representa a descri��o do levantamento.
	 */

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

}